package com.lai.gulimall.elasticsearch.vo;

import com.lai.common.to.SkuEsModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SearchResult {

    /**
     * 查询到的所有商品信息
     */
    private List<SkuEsModel> products;


    private Integer pageNum;//当前页码
    private Long total;//总记录数
    private Integer totalPages;//总页码

    private List<Integer> pageNavs;


    /**
     * 查询到的结果涉及到的品牌
     */
    private List<BrandVo> brands;

    /**
     * 查询到的结果涉及到的属性
     */
    private List<AttrVo> attrs;

    /**
     * 查询到的结果涉及到的分类
     */
    private List<CatalogVo> catalogs;


    /**
     * 面包屑导航
     */
    private List<NavVo> navs = new ArrayList<>();
    private List<Long> attrIds = new ArrayList<>();

    //=============以上是返回给页面的所有信息==================

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class NavVo{
        private String navName;
        private String navValue;
        private String link;
    }


    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class BrandVo{
        private Long brandId;
        private String brandName;
        private String brandImg;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class AttrVo{
        private Long attrId;
        private String attrName;
        private List<String> attrValue;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class CatalogVo{
        private Long catalogId;
        private String catalogName;
    }
}
